%% @author Digi-Spike
%% @doc @todo Add description to maxteilsumme1.


-module(maxteilsumme1).
%% ====================================================================
%% API functions
%% ====================================================================
-export([maxTeilsumme1/1]).



%% ====================================================================
%% Internal functions
%% ====================================================================

maxTeilsumme1(Folge) -> 
	for(Folge,{0,{1,1}},{0,{1,1}}).
% Abbruchbedingung
for([],{BisherigesMax,{BisInVorn,BisInHinten}},_) -> 
	{BisherigesMax,{BisInVorn,BisInHinten}};

for(Folge,{BisherigesMax,{BisInVorn,BisInHinten}},{RandMax,{RandInVorn,RandInHinten}}) ->
									%   1.Element der Folge	,  Tail der Folge
							if (RandMax+hd(Folge)) =< 0 -> for(tl(Folge),{BisherigesMax,{BisInVorn,BisInHinten}},{0,{RandInHinten+1,RandInHinten+1}});
							   (RandMax+hd(Folge)) > BisherigesMax -> for(tl(Folge),{RandMax+hd(Folge),{RandInVorn,RandInHinten}},{RandMax+hd(Folge),{RandInVorn,RandInHinten+1}});
							   (RandMax+hd(Folge)) =< BisherigesMax -> for(tl(Folge),{BisherigesMax,{BisInVorn,BisInHinten}},{RandMax+hd(Folge),{RandInVorn,RandInHinten+1}})
							end.